package com.ruoyi.purchaseReturn.service;

import com.ruoyi.procurement.domain.ProcurementModel;
import com.ruoyi.procurement.domain.ProcurementOrder;
import com.ruoyi.product.domain.Product;
import com.ruoyi.purchaseReturn.domain.PurchaseReturnModel;
import com.ruoyi.purchaseReturn.domain.PurchaseReturnOrder;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author WangChangShuo
 * @date 2022年06月15日 11:25
 */
public interface IPurchaseReturnService {

    List<PurchaseReturnOrder> selectPurchaseReturnOrder(PurchaseReturnOrder purchaseReturnOrder);

    List<ProcurementOrder> selectProcurementOrderListByReturn(ProcurementOrder procurementOrder);

    List<ProcurementModel> selectProcurementModelById(HashMap hashMap);

    ProcurementModel selectProcurementModels(HashMap<Object, Object> hashMap);

    ProcurementOrder selectProcurementOrderById(Long procurementWarehousingId);

    int insertPurchaseReturnOrder(PurchaseReturnOrder purchaseReturnOrder);

    int insertPurchaseReturnModel(PurchaseReturnOrder purchaseReturnOrder);

    int updatePurchaseIsReturn(Long purchaseId);

    void returnAudit(PurchaseReturnOrder purchaseReturnOrder);


    PurchaseReturnOrder selectPurchaseReturnById(Long purchaseReturnId);

    int deletePurchaseReturnById(Long purchaseReturnId);

    ProcurementModel selectProcurementModelByNo(Long procurementWarehousingNo);

    List<ProcurementModel> selectProcurementModelListByNo(Long procurementWarehousingNo);

    int updatePurchaseReturnStatus(HashMap hashMap);

    PurchaseReturnModel selectPurchaseReturnModelById(Long purchaseReturnModelId);

    List<PurchaseReturnOrder> selectPurchaseReturnOrderListCustObj(Long companyId);

    List<Product> selectPurchaseReturnModelByNo(Long purchaseReturnId);

    List<PurchaseReturnOrder> selectProcurementSupplierObj(Long companyId);

    public int auditSale(PurchaseReturnOrder purchaseReturnOrder);

    // 获取上一条记录
    Long querypreviousId(Long purchaseReturnId);
    // 获取下一条记录
    Long queryNextId(Long purchaseReturnId);

    List<Map<String, Object>> pendingReview(Long deptID);
}
